/**
 * 在泛型约束中使用类型参数
 * Key extends keyof Type 
 * */

function getProperty<Type, Key extends keyof Type>(obj: Type, key: Key): Type[Key] {
  return obj[key]
}

let x_prop = {
  a: 1,
  b: 2,
  c: 3,
  d: 4
}

const res = getProperty(x_prop, 'a')

console.log(res)